package org.edu.modules.research.rpaper.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.edu.common.base.BaseEntity;
import java.sql.Timestamp;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;
import java.util.Date;

/**
 * entity-教科研工作上报
 */
@TableName("ve_jky_report")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="教科研工作上报对象", description="ve_jky_report")
public class VeJkyReport extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableField
    @ApiModelProperty(value = "用户id")
    @Length(max = 32)
    private String userId;

    @TableField
    @ApiModelProperty(value = "用户")
    @Length(max = 32)
    private String userName;

    @TableField
    @ApiModelProperty(value = "类型 1:论文  2:科研课题  3:其他")
    private Integer type;

    @TableField
    @ApiModelProperty(value = "论文名称,课题名称")
    @Length(max = 255)
    private String name;

    @TableField
    @ApiModelProperty(value = "发布平台")
    @Length(max = 255)
    private String pubPt;

    @TableField
    @ApiModelProperty(value = "平台级别,课题级别")
    @Length(max = 255)
    private String level;

    @TableField
    @ApiModelProperty(value = "期刊此号")
    @Length(max = 255)
    private String code;

    @TableField
    @ApiModelProperty(value = "发布时间 结课时间")
    @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
    private Date pubTime;

    @TableField
    @ApiModelProperty(value = "是否独立撰文")
    private Integer selfType;

    @TableField
    @ApiModelProperty(value = "是否第一作者")
    private Integer isFrist;

    @TableField
    @ApiModelProperty(value = "主持人")
    @Length(max = 50)
    private String hostUser;

    @TableField
    @ApiModelProperty(value = "课题参与人姓名（按序）")
    @Length(max = 500)
    private String joinUser;

    @TableField
    @ApiModelProperty(value = "是否立项")
    private Integer isProject;

    @TableField
    @ApiModelProperty(value = "立项时间")
    @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
    private Date projectTime;

    @TableField
    @ApiModelProperty(value = "是否结题")
    private Integer isOver;

    @TableField
    @ApiModelProperty(value = "结题时间")
    @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
    private Date overTime;

    @TableField
    @ApiModelProperty(value = "组织单位")
    @Length(max = 255)
    private String org;

    @TableField
    @ApiModelProperty(value = "论文简介")
    @Length(max = 4000)
    private String mark;
}
